//class Solution {
//
//public:
//    struct greater
//    {
//        bool operator()(const pair<string, int>& a, const pair<string, int>& b)
//        {
//            if (a.second != b.second)
//                return a.second > b.second;
//            else
//            {
//                return a.first < b.first;
//            }
//        }
//    };
//    vector<string> topKFrequent(vector<string>& words, int k) {
//        map<string, int> mp;
//        for (auto& e : words)
//        {
//            mp[e]++;
//        }
//        vector<pair<string, int>> vc;
//        for (auto& e : mp)
//        {
//            vc.push_back(e);
//        }
//        sort(vc.begin(), vc.end(), greater());
//        vector<string> v;
//        for (int i = 0;i < k;i++)
//        {
//            v.push_back(vc[i].first);
//        }
//        return v;
//    }
//};